{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Image Recognition using:\n",
    "### Random Forest, Feed Forward NN, CNN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "import time\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from keras.models import Sequential\n",
    "from keras.layers import Dense\n",
    "from keras.layers import Conv2D\n",
    "from keras.layers import MaxPool2D, AvgPool2D\n",
    "from keras.layers import Flatten, Activation\n",
    "import keras.backend as K\n",
    "from keras import datasets\n",
    "from keras.datasets import mnist\n",
    "from keras.utils.np_utils import to_categorical\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from scipy.ndimage.filters import convolve\n",
    "from scipy.signal import convolve2d\n",
    "from scipy import misc\n",
    "\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn import metrics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Challenge - CIFAR10 image recognition\n",
    "\n",
    "This is the [Cifar 10 Dataset](http://www.cs.toronto.edu/~kriz/cifar.html), a very famous dataset that contains images for 10 different categories:\n",
    "\n",
    "- airplane \t\t\t\t\t\t\t\t\t\t\n",
    "- automobile \t\t\t\t\t\t\t\t\t\t\n",
    "- bird \t\t\t\t\t\t\t\t\t\t\n",
    "- cat \t\t\t\t\t\t\t\t\t\t\n",
    "- deer \t\t\t\t\t\t\t\t\t\t\n",
    "- dog \t\t\t\t\t\t\t\t\t\t\n",
    "- frog \t\t\t\t\t\t\t\t\t\t\n",
    "- horse \t\t\t\t\t\t\t\t\t\t\n",
    "- ship \t\t\t\t\t\t\t\t\t\t\n",
    "- truck\n",
    "\n",
    "\n",
    "Here's what you have to do:\n",
    "- load the cifar10 dataset using `keras.datasets.cifar10.load_data()`\n",
    "- display a few images, see how hard/easy it is for you to recognize an object with such low resolution\n",
    "- build the following image classification models and compare the performance\n",
    "    - Random Forest\n",
    "    - Feed Forward Neural Network\n",
    "    - Convolution Neural Network with the following architecture\n",
    "        - conv2d\n",
    "        - conv2d\n",
    "        - maxpool\n",
    "        - conv2d\n",
    "        - conv2d\n",
    "        - maxpool\n",
    "        - flatten\n",
    "        - dense\n",
    "        - output"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "from keras.datasets import cifar10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "(X_train,y_train),(X_test,y_test) = cifar10.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50000, 32, 32, 3)"
      ]
     },
     "execution_count": 129,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1c2dd93cc0>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,8))\n",
    "plt.subplot(221)\n",
    "plt.imshow(X_train[2])\n",
    "\n",
    "plt.subplot(222)\n",
    "plt.imshow(X_train[20])\n",
    "\n",
    "plt.subplot(223)\n",
    "plt.imshow(X_train[200])\n",
    "\n",
    "plt.subplot(224)\n",
    "plt.imshow(X_train[2000])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = X_train.reshape(-1,32*32*3)\n",
    "X_test = X_test.reshape(-1,32*32*3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50000, 3072)"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = X_train.astype('float32')\n",
    "X_test = X_test.astype('float32')\n",
    "X_train /= 255.0\n",
    "X_test /= 255.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(211)\n",
    "plt.title('Train Class')\n",
    "plt.hist(y_train,rwidth=0.9)\n",
    "plt.show()\n",
    "\n",
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(212)\n",
    "plt.title('Test Class')\n",
    "plt.hist(y_test,rwidth=0.9)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:6: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples,), for example using ravel().\n",
      "  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.471\n",
      "Random forest took: 287.571 seconds to train and evauate\n"
     ]
    }
   ],
   "source": [
    "start = time.time()\n",
    "\n",
    "clf = RandomForestClassifier(n_estimators=100)\n",
    "\n",
    "#Train the model using the training sets y_pred=clf.predict(X_test)\n",
    "clf.fit(X_train,y_train)\n",
    "\n",
    "y_pred=clf.predict(X_test)\n",
    "\n",
    "# Model Accuracy, how often is the classifier correct?\n",
    "print(\"Accuracy:\",metrics.accuracy_score(y_test, y_pred))\n",
    "\n",
    "end = time.time()\n",
    "\n",
    "print('Random forest took: %.3f seconds to train and evauate' %(end - start))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "a = metrics.precision_recall_fscore_support(y_test,y_pred,average='macro')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Precision: 46.604978\n",
      "Recall: 47.100000\n",
      "F1: 46.703382\n"
     ]
    }
   ],
   "source": [
    "print('Precision: %3f'%(a[0]*100))\n",
    "print('Recall: %3f'%(a[1]*100))\n",
    "print('F1: %3f'%(a[2]*100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Feedforward NN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train_cat = to_categorical(y_train)\n",
    "y_test_cat = to_categorical(y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_1 (Dense)              (None, 1024)              3146752   \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 512)               524800    \n",
      "_________________________________________________________________\n",
      "dense_3 (Dense)              (None, 256)               131328    \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 128)               32896     \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 10)                1290      \n",
      "=================================================================\n",
      "Total params: 3,837,066\n",
      "Trainable params: 3,837,066\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "K.clear_session()\n",
    "\n",
    "model = Sequential()\n",
    "\n",
    "model.add(Dense(1024, input_dim=32*32*3, activation='relu'))\n",
    "model.add(Dense(512, activation='relu'))\n",
    "model.add(Dense(256, activation='relu'))\n",
    "model.add(Dense(128, activation='relu'))\n",
    "model.add(Dense(10, activation='softmax'))\n",
    "\n",
    "model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 40000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "40000/40000 [==============================] - 23s 579us/step - loss: 1.9985 - acc: 0.2528 - val_loss: 1.9113 - val_acc: 0.2993\n",
      "Epoch 2/10\n",
      "40000/40000 [==============================] - 22s 558us/step - loss: 1.8211 - acc: 0.3348 - val_loss: 1.8102 - val_acc: 0.3417\n",
      "Epoch 3/10\n",
      "40000/40000 [==============================] - 22s 559us/step - loss: 1.7325 - acc: 0.3713 - val_loss: 1.7016 - val_acc: 0.3881\n",
      "Epoch 4/10\n",
      "40000/40000 [==============================] - 22s 560us/step - loss: 1.6750 - acc: 0.3891 - val_loss: 1.6766 - val_acc: 0.3952\n",
      "Epoch 5/10\n",
      "40000/40000 [==============================] - 23s 564us/step - loss: 1.6263 - acc: 0.4094 - val_loss: 1.6326 - val_acc: 0.4128\n",
      "Epoch 6/10\n",
      "40000/40000 [==============================] - 23s 563us/step - loss: 1.5721 - acc: 0.4288 - val_loss: 1.5875 - val_acc: 0.4314\n",
      "Epoch 7/10\n",
      "40000/40000 [==============================] - 22s 560us/step - loss: 1.5336 - acc: 0.4454 - val_loss: 1.5728 - val_acc: 0.4401\n",
      "Epoch 8/10\n",
      "40000/40000 [==============================] - 22s 558us/step - loss: 1.5031 - acc: 0.4561 - val_loss: 1.5236 - val_acc: 0.4553\n",
      "Epoch 9/10\n",
      "40000/40000 [==============================] - 22s 553us/step - loss: 1.4716 - acc: 0.4699 - val_loss: 1.4867 - val_acc: 0.4683\n",
      "Epoch 10/10\n",
      "40000/40000 [==============================] - 22s 559us/step - loss: 1.4346 - acc: 0.4814 - val_loss: 1.4893 - val_acc: 0.4682\n",
      "Feed Forward Network took: 224.884 seconds to train and evauate\n"
     ]
    }
   ],
   "source": [
    "start = time.time()\n",
    "\n",
    "model.fit(X_train,y_train_cat,batch_size=128,epochs=10,validation_split=0.2)\n",
    "\n",
    "end = time.time()\n",
    "print('Feed Forward Network took: %.3f seconds to train and evauate' %(end - start))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 47.66%\n",
      "Precision: 48.943375\n",
      "Recall: 47.660000\n",
      "F1: 46.405775\n"
     ]
    }
   ],
   "source": [
    "plt.plot(model.history.history['loss'],label='Train Loss')\n",
    "plt.plot(model.history.history['val_loss'],label='Val Loss')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "plt.plot(model.history.history['acc'],label='Train Accuracy')\n",
    "plt.plot(model.history.history['val_acc'],label='Val Accuracy')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "print('Accuracy: %.2f%%'%(model.evaluate(X_test,y_test_cat,verbose=0)[1]*100))\n",
    "\n",
    "y_pred = model.predict(X_test)\n",
    "y_pred = y_pred.argmax(1)\n",
    "\n",
    "met = metrics.precision_recall_fscore_support(y_test,y_pred,average='macro')\n",
    "print('Precision: %3f'%(met[0]*100))\n",
    "print('Recall: %3f'%(met[1]*100))\n",
    "print('F1: %3f'%(met[2]*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Convolutional Neural Network\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train = X_train.reshape(-1,32,32,3)\n",
    "X_test = X_test.reshape(-1,32,32,3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(50000, 32, 32, 3)"
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "conv2d_1 (Conv2D)            (None, 32, 32, 32)        896       \n",
      "_________________________________________________________________\n",
      "conv2d_2 (Conv2D)            (None, 30, 30, 32)        9248      \n",
      "_________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2 (None, 15, 15, 32)        0         \n",
      "_________________________________________________________________\n",
      "conv2d_3 (Conv2D)            (None, 15, 15, 64)        18496     \n",
      "_________________________________________________________________\n",
      "conv2d_4 (Conv2D)            (None, 13, 13, 64)        36928     \n",
      "_________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2 (None, 6, 6, 64)          0         \n",
      "_________________________________________________________________\n",
      "flatten_1 (Flatten)          (None, 2304)              0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 512)               1180160   \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                5130      \n",
      "=================================================================\n",
      "Total params: 1,250,858\n",
      "Trainable params: 1,250,858\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "K.clear_session()\n",
    "\n",
    "model = Sequential()\n",
    "\n",
    "\n",
    "model.add(Conv2D(32,(3,3),\n",
    "                 padding='same',\n",
    "                 input_shape=(32,32,3),\n",
    "                 activation='relu'))\n",
    "model.add(Conv2D(32,(3,3),\n",
    "                 activation='relu'))\n",
    "model.add(MaxPool2D(pool_size=(2,2)))\n",
    "\n",
    "\n",
    "\n",
    "model.add(Conv2D(64,(3,3),\n",
    "                 padding='same',\n",
    "                 activation='relu'))\n",
    "model.add(Conv2D(64,(3,3),\n",
    "                 activation='relu'))\n",
    "model.add(MaxPool2D(pool_size=(2,2)))\n",
    "\n",
    "\n",
    "model.add(Flatten())\n",
    "model.add(Dense(512, activation='relu'))\n",
    "model.add(Dense(10, activation='softmax'))\n",
    "\n",
    "model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])\n",
    "\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 40000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "40000/40000 [==============================] - 133s 3ms/step - loss: 1.5516 - acc: 0.4361 - val_loss: 1.2785 - val_acc: 0.5454\n",
      "Epoch 2/10\n",
      "40000/40000 [==============================] - 144s 4ms/step - loss: 1.1134 - acc: 0.6037 - val_loss: 1.0896 - val_acc: 0.6179\n",
      "Epoch 3/10\n",
      "40000/40000 [==============================] - 138s 3ms/step - loss: 0.9092 - acc: 0.6791 - val_loss: 0.9002 - val_acc: 0.6817\n",
      "Epoch 4/10\n",
      "40000/40000 [==============================] - 124s 3ms/step - loss: 0.7640 - acc: 0.7333 - val_loss: 0.8006 - val_acc: 0.7251\n",
      "Epoch 5/10\n",
      "40000/40000 [==============================] - 118s 3ms/step - loss: 0.6446 - acc: 0.7736 - val_loss: 0.8397 - val_acc: 0.7166\n",
      "Epoch 6/10\n",
      "40000/40000 [==============================] - 115s 3ms/step - loss: 0.5450 - acc: 0.8103 - val_loss: 0.7820 - val_acc: 0.7376\n",
      "Epoch 7/10\n",
      "40000/40000 [==============================] - 116s 3ms/step - loss: 0.4364 - acc: 0.8475 - val_loss: 0.8137 - val_acc: 0.7436\n",
      "Epoch 8/10\n",
      "40000/40000 [==============================] - 118s 3ms/step - loss: 0.3333 - acc: 0.8853 - val_loss: 0.8348 - val_acc: 0.7559\n",
      "Epoch 9/10\n",
      "40000/40000 [==============================] - 104s 3ms/step - loss: 0.2408 - acc: 0.9162 - val_loss: 0.9944 - val_acc: 0.7323\n",
      "Epoch 10/10\n",
      "40000/40000 [==============================] - 127s 3ms/step - loss: 0.1673 - acc: 0.9425 - val_loss: 1.0601 - val_acc: 0.7303\n",
      "CNN took: 1236.604 seconds to train and evauate\n"
     ]
    }
   ],
   "source": [
    "start = time.time()\n",
    "\n",
    "model.fit(X_train,\n",
    "          y_train_cat,\n",
    "          epochs=10,\n",
    "          batch_size=128,\n",
    "          validation_split=0.2)\n",
    "\n",
    "end = time.time()\n",
    "print('CNN took: %.3f seconds to train and evauate' %(end - start))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 72.31%\n",
      "Precision: 73.677056\n",
      "Recall: 72.310000\n",
      "F1: 72.730190\n"
     ]
    }
   ],
   "source": [
    "plt.plot(model.history.history['loss'],label='Train Loss')\n",
    "plt.plot(model.history.history['val_loss'],label='Val Loss')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "plt.plot(model.history.history['acc'],label='Train Accuracy')\n",
    "plt.plot(model.history.history['val_acc'],label='Val Accuracy')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "print('Accuracy: %.2f%%'%(model.evaluate(X_test,y_test_cat,verbose=0)[1]*100))\n",
    "\n",
    "y_pred = model.predict(X_test)\n",
    "y_pred = y_pred.argmax(1)\n",
    "\n",
    "met = metrics.precision_recall_fscore_support(y_test,y_pred,average='macro')\n",
    "print('Precision: %3f'%(met[0]*100))\n",
    "print('Recall: %3f'%(met[1]*100))\n",
    "print('F1: %3f'%(met[2]*100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save your model as a local file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pickle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {},
   "outputs": [],
   "source": [
    "pickle.dump(model,open('cnn_model.sav','wb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 9s 859us/step\n",
      "0.7231\n"
     ]
    }
   ],
   "source": [
    "loaded_model = pickle.load(open('cnn_model.sav', 'rb'))\n",
    "result = loaded_model.evaluate(X_test, y_test_cat)[1]\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
